Skip to content

ceciliaferrando/PB-DP-CIs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Parametric Bootstrap Differentially-Private Confidence Intervals"

#############################################################

Scripts:

- "DPCIs-expfam.py": main Python functions and driver to run confidence interval experiments
- "DPCIs-expfam-mv.py": multivariate version of Gaussian of known variance (analysis on dim 0)
- "DPCIs-OLS.py": main Python functions and driver to run confidence interval experiments for OLS
- "functions.py": helper functions, including sensitivity and privatization mechanisms

Requirements:

NumPy, SciPy, argparse, matplotlib.pyplot, pandas, seaborn

#############################################################

To reproduce the experiments (example for DPCIs for exponential families):

1) choose experiment parameters:

	--N	[int] data size
	
	--theta	[float] first parameter (manually set to parameter vector if using multivariate version 'CImv.py')
	
	--theta2 [float] second parameter, if any (manually set to parameter vector if using multivariate version 'CImv.py')
	
	--d	[str] distribution:
			'poisson' -> Poisson 
			'gaussian' -> Gaussian of known variance
			'gaussian2' -> Gaussian of unknown variance
			'gamma' -> Gamma of known shape
			'gaussianMV' -> multivariate Gaussian of known variance (use 'CImv.py')
	
	--mode	[str] 
		'empirical' for bootstrap quantile CIs
		'analytic' for standard normal CIs
	
	--e	[float] differential privacy parameter epsilon (for example 0.1 or 0.5)
	
	--clip	[bool]
		'True' -> clamp data to the sensitivity bounds found on a n=1000 dataset
		'False' -> conservative sensitivity, no clamping to the sensitivity bounds
	
	--rng	[float]
		data range radius for gaussian experiment comparison
		if rng=0., range is computed out of a surrogate dataset of size 1000
	
	--rho	[float]
		for two-parameter privatization (like Gaussian with unknown variance)
		share of privacy budget to allocate to privatization of the first parameter
		(1-rho will be allocated to privatize the other parameter)


2) run driver with choice of experiment parameters

3) results will be saved in .npy

About

Parametric Bootstrap Differentially Private Confidence Intervals (AISTATS 2022)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages